<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <title>Pyarmor</title>

  <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" />
  <style type="text/css">
    .toolbar {
      margin: 10px 15px 10px 15px;
      position: absolute;
      right: 0;
      top: 0;
    }
    .tab-pane > div.content {
      padding: 0 1em;
    }
    #global-message {
      position: absolute;
      left: 0;
      right: 0;
      top: 50px;
      z-index: 1;
    }
    #project-basic .panel-body { padding-bottom: 5px; }
  </style>

  <script type="text/javascript" src="js/jquery.min.js"></script>
  <script type="text/javascript" src="js/bootstrap.min.js"></script>
  <script data-main="app" src="js/require.js"></script>
  <script type="text/javascript">
  </script>
</head>

<body role="document">
  <nav role="navigation" class="navbar navbar-default">
    <div class="container-fluid">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-main-tab" aria-expanded="false">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="https://github.com/dashingsoft/pyarmor">Pyarmor</a>
      </div>
      <!-- /.navbar-header -->
      <div class="collapse navbar-collapse" id="navbar-main-tab">
        <ul class="nav navbar-nav">
          <li role="presentation"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">首页</a></li>
          <li role="presentation" class="active"><a href="#project" aria-controls="project" role="tab" data-toggle="tab">项目</a></li>
          <li role="presentation"><a href="#documentation" aria-controls="documentation" role="tab" data-toggle="tab">教程</a></li>
          <li role="presentation"><a href="#purchase" aria-controls="purchase" role="tab" data-toggle="tab">购买</a></li>
          <!-- <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">设置</a></li> -->
          <li role="presentation"><a href="#about" aria-controls="about" role="tab" data-toggle="tab">关于</a></li>
        </ul>
      </div>
      <!-- /.navbar-collapse -->
    </div>
    <!-- /.container-fluid -->
  </nav>

  <div id="global-message"></div>

  <!-- Tab panes -->
  <div class="tab-content">
    <div role="tabpanel" class="tab-pane" id="home">
      <div class="toolbar">
        <a type="button" class="btn btn-success" href="index.html">English Version</a>
      </div>
      <div class="content">
        <p>Pyarmor 是用来导入和运行加密的 Python 脚本的工具</p>
        <h4 id="main-features">主要功能</h4>
        <ul>
          <li>运行加密脚本或者导入加密模块</li>
          <li>运行或者导入加密的 .pyc、.pyo 文件</li>
          <li>混合使用加密和没有加密的 Python 脚本文件</li>
          <li>设置加密脚本的使用期限</li>
          <li>限制加密脚本在固定机器上使用</li>
        </ul>
        <h4 id="support-platforms">支持的平台</h4>
        <ul>
          <li><p>Python 2.5, 2.6, 2.7 和所有的 Python3</p></li>
          <li><p>win32, win_amd64, linux_i386, linux_x86_64, darwin_x86_64</p></li>
        </ul>
        <h4 id="quick-start">快速开始</h4>
        <ul>
          <li><p>下载 <a href="https://github.com/dashingsoft/pyarmor/releases/download/v3.1.4/pyarmor-webapp.zip">pyarmor-webapp.zip</a></p></li>
          <li><p>解压到任何路径， 例如，<em>/opt</em></p></li>
          <li><p>打开文件夹 <em>/opt/pyarmor/webapp</em>，双击里面的文件 <strong>start-server.bat</strong> (For Windows) or <strong>start-server.sh</strong> (For Linux)</p></li>
          <li><p>这时候会在浏览器打开一个网页，下面的操作都是在该网页内部进行:</p>
            <ul>
              <li>单击 <strong>项目</strong></li>
              <li>在 <strong>源路径</strong> 中输入源文件所在的绝对路径， 例如 <em>/opt/pyarmor/src/examples</em></li>
              <li>在 <strong>主脚本</strong> 中输入启动脚本的名字</li>
              <li>在 <strong>输出路径</strong> 中输入保存加密脚本的绝对路径，例如 <em>/opt/pyarmor/webapp/build</em></li>
              <li>单击 <strong>加密</strong></li>
              <li>所有加密文件会存放到 <em>/opt/pyarmor/build</em></li>
            </ul>
          </li>
          <li>打开这个文件夹，运行加密的脚本： <code>python queens.py</code></li>
        </ul>
        <h4 id="license">许可方式</h4>
        <p>Pyarmor 是作为共享软件发布。试用版本不会过期，唯一的限制是</p>
        <ul>
          <li>所有加密的脚本使用的密钥都是相同的</li>
        </ul>
        <p>使用任意密钥加密脚本需要购买一个注册码，注册码的使用许可</p>
        <ul>
          <li>个人用户：只需要购买一个就可以在所有的个人项目中使用</li>
          <li>企业用户：每一个注册码只能用于一个产品或者项目</li>
        </ul>
        <strong>注册码永久有效，不会过期</strong>
      </div>
    </div>
    <!-- /.tab-pane -->
    <div role="tabpanel" class="tab-pane active" id="project">
      <div class="toolbar">
        <button id="new-project" type="button" class="btn btn-success" title="New project">新建</button>
        <button id="open-project" type="button" class="btn btn-default" title="Open project">打开</button>
        <button id="save-project" type="button" class="btn btn-default" title="Save project">保存</button>
        <button id="build-project" type="button" class="btn btn-default" title="Encrypt all files in project">加密</button>
        <!-- <h4><span class="label label-warning">Demo Version</span></h4> -->
        <button id="demo-button" type="button" class="btn btn-warning hidden">演示版本</button>
      </div>
      <div class="container-fluid">
        <div class="row">
          <div class="col-sm-2">
            <ul class="nav nav-pills nav-stacked">
              <li role="presentation" class="active"><a href="#project-basic" aria-controls="project-basic" role="tab" data-toggle="pill">基本信息</a></li>
              <li role="presentation"><a href="#project-advanced" aria-controls="project-advanced" role="tab" data-toggle="pill">高级设置</a></li>
              <li role="presentation"><a href="#project-licenses" aria-controls="project-licenses" role="tab" data-toggle="pill">许可证</a></li>
              <li role="presentation"><a href="#project-console" aria-controls="project-console" role="tab" data-toggle="pill">控制台</a></li>
            </ul>
          </div>
          <!-- /.col-sm-2 -->
          <div class="col-sm-10">
            <div class="tab-content">
              <div role="tabpanel" class="tab-pane active" id="project-basic">
                <div class="panel panel-default">
                  <div class="panel-heading">项目信息</div>
                  <div class="panel-body">
                    <form>
                      <div class="form-group hidden">
                        <label for="input_project_name">名称</label>
                        <input type="text" class="form-control" id="input_project_name"/>
                      </div>
                      <div class="form-group">
                        <label for="input_project_title">标题</label>
                        <input type="text" class="form-control" id="input_project_title"/>
                      </div>
                      <div class="form-group hidden">
                        <label for="input_project_capsule">Capsule</label>
                        <input type="text" class="form-control" id="input_project_capsule" placeholder="Project Capsule Filename" disabled/>
                        <p class="help-block">It will be generated when new project and can not be changed.</p>
                      </div>
                      <div class="form-group hidden">
                        <label for="input_project_description">Description</label>
                        <textarea class="form-control" rows="5" id="input_project_description"></textarea>
                      </div>
                      <div class="form-group">
                        <label for="input_source_path">源路径</label>
                        <input type="text" class="form-control" id="input_project_path"/>
                        <p class="help-block">必须项。一般是绝对路径，会被 MANIFEST.in 作为根目录来搜索文件</p>
                      </div>
                      <div class="form-group">
                        <label for="input_project_files">MANIFEST.in</label>
                        <textarea class="form-control" rows="3" id="input_project_files"></textarea>
                        <p class="help-block">可选项。 使用 Distutils 的模板文件，用来定义需要加密的文件列表</p>
                      </div>
                      <div class="form-group">
                        <label for="input_project_scripts">启动脚本</label>
                        <input type="text" class="form-control" id="input_project_scripts"/>
                        <p class="help-block">可选项。</p>
                      </div>
                      <div class="form-group">
                        <label for="input_build_path">输出路径</label>
                        <input type="text" class="form-control" id="input_build_path"/>
                        <p class="help-block">可选项。一般为绝对路径，如果不为空，加密后的文件保存在这里；如果为空，则和源文件同路径</p>
                      </div>
                    </form>
                  </div>
                  <!-- /.panel-body -->
                </div>
                <!-- /.panel-default -->
              </div>
              <!-- /.tab-pane -->
              <div role="tabpanel" class="tab-pane" id="project-advanced">
                <div class="panel panel-default">
                  <div class="panel-heading">设置生成加密脚本的方式</div>
                  <div class="panel-body">
                    <form>
                      <div class="has-warning">
                        <div class="checkbox">
                          <label>
                            <input type="checkbox" id="input_project_clean" value=""/>
                            <strong>加密文件生成后删除源文件</strong>
                          </label>
                          <p class="help-block"></p>
                        </div>
                      </div>
                      <div class="form-group">
                        <label for="input_project_target">运行加密脚本在其他平台</label>
                        <select class="form-control" id="input_project_target">
                          <option></option>
                          <option>win32</option>
                          <option>win_amd64</option>
                          <option>linux_i386</option>
                          <option>linux_x86_64</option>
                          <option>darwin_x86_64</option>
                        </select>
                        <p class="help-block">如果运行环境和当前平台一致，就不需要输入</p>
                      </div>
                      <div class="form-group">
                        <label for="input_project_default_license">加密脚本的许可方式</label>
                        <select class="form-control" id="input_project_default_license">
                          <option value="">任意机器，永不过期（默认）</option>
                        </select>
                        <p class="help-block">如果需要生成项目新的许可证，单击左侧 <strong>许可证</strong></p>
                      </div>
                    </form>
                  </div>
                  <!-- /.panel-body -->
                </div>
                <!-- /.panel-default -->
              </div>
              <!-- /.tab-pane -->
              <div role="tabpanel" class="tab-pane" id="project-licenses">
                <div class="panel panel-default">
                  <div class="panel-heading">为特定用户生成项目许可证</div>
                  <div class="panel-body">
                    <form>
                      <div class="form-group">
                        <label for="input_bind_harddisk">
                          <div class="checkbox">
                            <label>
                              <input type="checkbox" id="check_bind_harddisk" value=""/>绑定加密脚本到指定机器，在文本框输入机器硬盘的序列号
                            </label>
                          </div>
                        </label>
                        <input type="text" class="form-control" id="input_bind_harddisk" disabled />
                      </div>
                      <div class="form-group">
                        <label for="input_expired_date">
                          <div class="checkbox">
                            <label>
                              <input type="checkbox" id="check_expired_date" value=""/>设置加密脚本的有效期，在文本框输入日期（YYYY-MM-NN）
                            </label>
                          </div>
                        </label>
                        <input type="text" class="form-control" id="input_expired_date" disabled/>
                      </div>
                      <div class="form-group">
                        <label for="input_license_rcode">注册码</label>
                        <input type="text" class="form-control" id="input_license_rcode"/>
                        <p class="help-block">任意字符串，例如 'customer-jondy'。注意：仅当上面两个复选框都没有选中时候才有效。</p>
                      </div>
                      <div class="form-group">
                        <label for="input_available_licenses">所有许可方式</label>
                        <select class="form-control" id="input_project_licenses" multiple readonly></select>
                      </div>
                      <button type="button" class="btn btn-default" id="new-license">生成</button>
                      <button type="button" class="btn btn-default pull-right" id="remove-license">删除</button>
                    </form>
                  </div>
                  <!-- /.panel-body -->
                </div>
                <!-- /.panel-default -->
              </div>
              <!-- /.tab-pane -->
              <div role="tabpanel" class="tab-pane" id="project-console">
                <div>
                  <form>
                    <div class="form-group">
                      <!-- <label for="project-log-message">Log message</label> -->
                      <textarea class="form-control" rows="20" id="project-log-message" readonly></textarea>
                    </div>
                    <a id="clear-log-message" role="button" class="btn btn-default">清空</a>
                  </form>
                </div>
                <!-- /.panel-default -->
              </div>
              <!-- /.tab-pane -->
            </div>
            <!-- /.tab-content -->
          </div>
          <!-- /.col-md-10 -->
        </div>
        <!-- /.row -->
      </div>
      <!-- /.container-fluid -->
    </div>
    <!-- /.tab-pane -->
    <div role="tabpanel" class="tab-pane" id="documentation">
      <div class="content">tutorial-zh.html</div>
    </div>
    <div role="tabpanel" class="tab-pane" id="purchase">
      <div class="content">
        <p>你现在使用的是试用版本。试用版本可以一直使用下去，但是加密脚本的密钥是公开的，并且固定不变，是在代码中写死的。</p>
        <p>使用任意密钥加密，需要购买注册码。如果 Pyarmor 真的能够对你有所帮助，请访问下面的页面进行购买</p>
        <p><a href="https://shopper.mycommerce.com/checkout/cart/add/55259-1">https://shopper.mycommerce.com/checkout/cart/add/55259-1</a></p>
        <p>注册码会通过邮件直接发送，收到邮件之后只需要把里面的注册码拷贝下来，保存为 Pyarmor 安装目录下面的文件 "license.lic"。注意注册码是一行随机的字符，没有任何换行符号。</p>
        <p><strong>注册码永久有效，不会过期</strong></p>
      </div>
    </div>
    <div role="tabpanel" class="tab-pane" id="settings">
      Settings
    </div>
    <div role="tabpanel" class="tab-pane" id="about">
      <div class="content">
        <p id="version-info">Pyarmor Version</p>
        <table class="table">
          <tr>
            <td><strong>首页</strong></td>
            <td><a href="http://www.dashingsoft.com">http://www.dashingsoft.com</a></td>
          </tr>
          <tr>
            <td><strong>源文件</strong></td>
            <td><a href="https://github.com/dashingsoft/pyarmor">https://github.com/dashingsoft/pyarmor</a></td>
          </tr>
          <tr>
            <td><strong>PyPI</strong></td>
            <td><a href="https://pypi.python.org/pypi/pyarmor">https://pypi.python.org/pypi/pyarmor</a></td>
          </tr>
          <tr>
            <td><strong>报告问题</strong></td>
            <td><a href="https://github.com/dashingsoft/pyarmor/issues">https://github.com/dashingsoft/pyarmor/issues</a></td>
          </tr>
          <tr>
            <td><strong>支持邮件</strong></td>
            <td><a href="mailto:jondy.zhao@gmail.com">jondy.zhao@gmail.com</a></td>
          </tr>
        </table>
        <p>欢迎您发送邮件反馈任何问题（国家大事除外）。</p>
      </div>
      <!-- /.content -->
    </div>
    <!-- /.tab-pane -->
  </div>
  <!-- /.tab-content -->
  <div class="modal fade" id="project-manage-modal" tabindex="-1" role="dialog" aria-labelledby="ProjectModalLabel">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
          <h4 class="modal-title" id="ProjectModalLabel">项目列表</h4>
        </div>
        <div class="modal-body">
          <form>
            <div class="form-group">
              <select class="form-control" id="project-manage-list" size="9" multiple required></select>
            </div>
          </form>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default pull-left" id="project-manage-remove">删除</button>
          <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
          <button type="button" class="btn btn-primary" id="project-manage-open">打开</button>
        </div>
      </div>
      <!-- /.modal-content -->
    </div>
    <!-- /.modal-dialog -->
  </div>
  <!-- /.modal -->

</body>
</html>
